【MySQL】SQLファイルの実行 - MySQL接続中やmysqlコマンドでSQLファイルを実行する
MySQLのSQLファイル実行について解説します。
検証環境
SQLファイル
SQLファイルは“SQLで記述したテキストファイル”です。
一般的に拡張子はsql
になります。
同じ処理の繰り返しや複雑な処理などはSQLファイルとして作成することで、入力の手間を省き、ミスを減らすことができます。
実行
SQLファイルをMySQLで実行する方法は3種類あります。
次のデータベースとSQLファイルを元に確認していきましょう。
mysql> SELECT * FROM mydb.items;
+----+-----------+-------+-------+
| id | name | price | stock |
+----+-----------+-------+-------+
| 1 | Apple | 200 | 10 |
| 2 | Orange | 150 | 3 |
| 3 | Pineapple | 1100 | 1 |
| 4 | Grapes | 3500 | 1 |
+----+-----------+-------+-------+
4 rows in set (0.00 sec)
SELECT * FROM mydb.items;
sourceコマンド
MySQLに接続し、source
コマンドでSQLファイルを実行します。
基本構文
source SQLファイルパス
サンプル
___ih_hl_start
mysql> source ./sample.sql;
___ih_hl_end
+----+-----------+-------+-------+
| id | name | price | stock |
+----+-----------+-------+-------+
| 1 | Apple | 200 | 10 |
| 2 | Orange | 150 | 3 |
| 3 | Pineapple | 1100 | 1 |
| 4 | Grapes | 3500 | 1 |
+----+-----------+-------+-------+
4 rows in set (0.00 sec)
\.コマンド
MySQLに接続し、\.
コマンドでSQLファイルを実行します。
基本構文
\. SQLファイルパス
source
コマンドのsource
を\.
に置き換えた構文と同じです。
ただし、文末にセミコロン(;
)を付けるとエラーが発生するので注意してください。
サンプル
___ih_hl_start
mysql> \. ./sample.sql
___ih_hl_end
+----+-----------+-------+-------+
| id | name | price | stock |
+----+-----------+-------+-------+
| 1 | Apple | 200 | 10 |
| 2 | Orange | 150 | 3 |
| 3 | Pineapple | 1100 | 1 |
| 4 | Grapes | 3500 | 1 |
+----+-----------+-------+-------+
4 rows in set (0.00 sec)
mysqlコマンド
MySQLの接続せずに、コマンドラインからmysql
コマンドでSQLファイルを実行します。
基本構文
$ mysql -u ユーザー -p < ファイルパス
サンプル
___ih_hl_start
$ mysql -u root -p < ./sample.sql
___ih_hl_end
Enter password:
id name price stock
1 Apple 200 10
2 Orange 150 3
3 Pineapple 1100 1
4 Grapes 3500 1